// 有一种暴力算法, 每次切一段, 给到最短的数据, 可以按照这个思路先实现一遍
const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let n,m;
let initArr = [];

rl.on("line", (line)=>{
    if(n === undefined) {
        [n, m] = line.trim().split(" ").map(Number);
    } else if (initArr.length === 0) {
        initArr = line.trim().split(" ").map(Number);
        const result = getResult(n, m, initArr)
        console.log(result)
        // 清理
        n = m = undefined;
        initArr.length = 0;
    }
})

/**
 *
 * @param n {number} 木板长度
 * @param m {number} 木料长度
 * @param initArr {[number]} 木板长度数据
 * @return {number}  最短木板长
 */
function getResult(n, m, initArr) {
    while(m) {
        initArr.sort()[0]++;
        m--
    }
    return initArr.sort()[0]
}
